<html>
<body>
Reports <code>clone()</code> methods with return types different from the class they're located in.
<p>Often a <code>clone()</code> method will have a return type of <code>java.lang.Object</code>, which makes it harder to use by its clients.
<i>Effective Java</i> (the second and third editions) recommends making the return type of the <code>clone()</code> method the same as the
  class type of the object it returns.</p>
<p><b>Example:</b></p>
<pre><code>
  <b>class</b> Foo <b>implements</b> Cloneable {
    <b>public</b> Object clone() {
      <b>try</b> {
        <b>return</b> super.clone();
      } <b>catch</b> (CloneNotSupportedException e) {
        <b>throw new</b> AssertionError();
      }
    }
  }
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
  <b>class</b> Foo <b>implements</b> Cloneable {
    <b>public</b> Foo clone() {
      <b>try</b> {
        <b>return</b> (Foo)super.clone();
      } <b>catch</b> (CloneNotSupportedException e) {
        <b>throw new</b> AssertionError();
      }
    }
  }
</code></pre>
<!-- tooltip end -->
</body>
</html>